package cn.wolfcode.trip.base.domain;

import cn.wolfcode.trip.base.util.JSONUtil;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author mycp 攻略分类
 */

@Setter
@Getter
@JsonIgnoreProperties("handler")
public class StrategyCatalog extends BaseDomain {
    private String name;// 攻略名称


    /**
     * 封装攻略所属的大攻略有两种方法:
     * 1. 使用一个大攻略对象 进行数据封装: 但是这在某个需求上封装比较麻烦
     * 2. 使用冗余数据, 如下的数据封装形式
     */
    private Long strategyId;// 攻略所属大攻略id
    private String strategyTitle;// 所属攻略分类标题

    private Integer sequence;// 序号

    private boolean state = false;// 状态 启用:true 禁用:false

    // 攻略分类下的攻略文章
    private List<StrategyDetail> details = new ArrayList<>();

    //封装成json
    public String getJson() {
        Map<String, Object> map = new HashMap<>();
        map.put("id", getId());
        map.put("name", name);
        map.put("strategyId", strategyId);
        map.put("strategyTitle", strategyTitle);
        map.put("sequence", sequence);
        map.put("state", state);
        return JSONUtil.toJSONString(map);
    }

    public String getStateName() {
        String stateName = "禁用";
        if (state) {
            stateName = "启用";
        }
        return stateName;
    }

}